// store的mutations

// 导入Mutations类型常量
import { INCREMENT } from "./mutations-type"

const mutations = {
	// 这里面定义方法

	// counter加1的方法，默认需要传入state参数
	[INCREMENT](state) {
		state.counter++
	},
	// counter减1的方法，同样默认传入state方法
	decrement(state) {
		state.counter--
	},
	// 自定义增加的大小，传入参数payload
	incrementCount(state, payload) {
		// state.counter += count
		// 使用特殊提交风格执行这个函数时，payload是一个对象
		console.log(payload)
		state.counter += payload.count
	},
	// 自定义添加一个学生
	incrementStudent(state, stu) {
		state.students.push(stu)
	},
	// 更新Info，测试响应式数据
	updateInfo(state) {
		// 更改信息
		// state.info.name = "乔布斯"
		// 添加一个地址信息，在旧版本中这方式不是响应式的，页面数据不会发生改变；Vue3.0之后是响应式的
		state.info["address"] = "时光里43号"

		// 响应式添加
		// vue2.x格式
		// Vue.set(target, key, value)
		// vue3.0中使用ES6的特性Proxy实现响应式，这里直接添加或者删除数组中的元素（或者对象属性）都是响应式的

		// 如果在这个函数里面有一个异步操作，则devtools是无跟踪这个异步操作的，通常异步操作会定义在actions里面
	},
}

export { mutations }
